www.gusucode.com > puyuetian PHP 轻框架源码 v1.0PHP源码程序 > puyuetian PHP 轻框架源码 v1.0/puyuetianPHP_v1.0.20160316/puyuetianPHP_v1.0.20160316/puyuetian/class.php

    <?php
if (!defined('puyuetian'))
	exit('Not Found puyuetian!Please contact QQ632827168');
/********************************************
 数据库操作类 - 获取、修改、添加、删除表信息,必须为id为唯一索引
 *******************************************/
class Data {
	public $id, $array, $query, $mysql_prefix, $table, $index;
	private $array_keys, $array_values;
	public function __construct($table, $prefix = true) {
		if ($prefix) {
			global $_G;
			//获取数据库表前缀
			$this -> mysql_prefix = $_G['MYSQL']['PREFIX'];
		} else {
			$this -> mysql_prefix = '';
		}
		$this -> table = $table;
	}

	public function getId($field, $str = NULL) {
		$sql = "";
		if (is_array($field) && is_array($str)) {
			foreach ($field as $key => $value) {
				$sql .= "`{$field[$key]}`=" . mysqlstr($str[$key]) . " and ";
			}
			$sql = substr($sql, 0, strlen($sql) - 5);
		} elseif (is_array($field) && $str == NULL) {
			foreach ($field as $key => $value) {
				$sql .= "`{$key}`=" . mysqlstr($value) . " and ";
			}
			$sql = substr($sql, 0, strlen($sql) - 5);
		} else {
			$str = mysqlstr($str);
			$sql = "`$field`=$str";
		}
		$query = mysql_query("select * from `{$this->mysql_prefix}{$this->table}` where {$sql}");
		if ($query) {
			$array = mysql_fetch_assoc($query);
			return $array['id'];
		} else {
			return false;
		}
	}

	public function getNewId($sql = '') {
		if ($sql)
			$sql = ' ' . $sql;
		$query = mysql_query("select * from `{$this->mysql_prefix}{$this->table}`{$sql} order by `id` desc");
		if ($query) {
			$array = mysql_fetch_assoc($query);
			return $array['id'];
		} else {
			return false;
		}
	}

	public function getOldId($sql = '') {
		if ($sql)
			$sql = ' ' . $sql;
		$query = mysql_query("select * from `{$this->mysql_prefix}{$this->table}`{$sql} order by `id`");
		if ($query) {
			$array = mysql_fetch_assoc($query);
			return $array['id'];
		} else {
			return false;
		}
	}

	public function getData($id) {
		$query = mysql_query("select * from `{$this->mysql_prefix}{$this->table}` where `id`=$id");
		if ($query) {
			$array = mysql_fetch_assoc($query);
			return $array;
		} else {
			return false;
		}
	}

	//pos开始指针位置,rnum读取记录条数,equery后续sql命令
	public function getDatas($pos = 0, $rnum = 10, $equery = null) {
		$limit = " limit $pos,$rnum";
		if (!$equery)
			$equery = ' ' . $equery;
		if (!$rnum)
			$limit = "";
		$query = mysql_query("select * from `{$this -> mysql_prefix}{$this -> table}`{$equery}{$limit}");
		if ($query) {
			$array = array();
			$index = 0;
			while ($querya = mysql_fetch_assoc($query)) {
				$array[$index] = $querya;
				$index++;
			}
			return $array;
		} else {
			return false;
		}
	}

	public function getFullColumns() {
		$query = mysql_query("show full columns from `{$this -> mysql_prefix}{$this -> table}`");
		if ($query) {
			$array = array();
			$index = 0;
			while ($querya = mysql_fetch_assoc($query)) {
				$array[$index] = $querya;
				$index++;
			}
			return $array;
		} else {
			return false;
		}
	}

	public function getColumn($_field = '') {
		if ($_field == '')
			return FALSE;
		$_query = mysql_query("show full columns from `{$this -> mysql_prefix}{$this -> table}` where field='{$_field}'");
		$_array = mysql_fetch_assoc($_query);
		return $_array;
	}

	public function getCount($zd = null, $id = null) {
		if ($zd == null && $id == null) {
			$sql = "";
		} elseif (is_array($zd) && is_array($id)) {
			$sql = " where ";
			foreach ($zd as $key => $value) {
				$sql .= "`{$zd[$key]}`=" . mysqlstr($id[$key]) . " and ";
			}
			$sql = substr($sql, 0, strlen($sql) - 5);
		} elseif (is_array($zd) && !is_array($id)) {
			$sql = " where ";
			foreach ($zd as $key => $value) {
				$sql .= "`{$key}`=" . mysqlstr($value) . " and ";
			}
			$sql = substr($sql, 0, strlen($sql) - 5);
		} else {
			$sql = " where `$zd`={$id}";
		}
		$query = mysql_query("select * from `{$this->mysql_prefix}{$this->table}`{$sql}");
		return mysql_num_rows($query);
	}

	public function getField() {
		$query = mysql_query("show columns from `{$this->mysql_prefix}{$this->table}`");
		while ($querya = mysql_fetch_assoc($query)) {
			$array .= ",{$querya['Field']}";
		}
		$array = substr($array, 1);
		$array = explode(',', $array);
		return $array;
	}

	public function newData(array $array) {
		//获取表字段名
		$array_keys = array_keys($array);
		//print_r($array_keys);
		//获取对应字段的值
		$array_values = array_values($array);
		//print_r($array_values);
		if (array_key_exists('id', $array)) {
			$id = Cnum($array['id']);
		} else {
			$id = 0;
		}
		if ($id) {
			//表信息更新
			$query = "update `{$this->mysql_prefix}{$this->table}` set ";
			for ($i = 0; $i < count($array_keys); $i++) {
				$query .= '`' . $array_keys[$i] . '`=' . mysqlstr($array_values[$i]) . ',';
			}
			$query = substr($query, 0, strlen($query) - 1);
			$query .= " where `id`=$id";
		} else {
			//表添加新信息
			$idkey = null;
			$query = "insert into `{$this->mysql_prefix}{$this->table}` (";
			foreach ($array_keys as $key => $value) {
				if ($value == 'id') {
					$idkey = $key;
				} else {
					$query .= "`$value`,";
				}
			}
			$query = substr($query, 0, strlen($query) - 1);
			$query .= ') values (';
			foreach ($array_values as $key => $value) {
				if ($key !== $idkey) {
					$query .= mysqlstr($value) . ',';
				}
			}
			$query = substr($query, 0, strlen($query) - 1);
			$query .= ')';
		}
		//echo $query . '<br>';
		$mysql_r = mysql_query($query);
		return $mysql_r;
	}

	public function delData($id, $type = false) {
		if ($type) {
			$array['id'] = $id;
			$array['del'] = 1;
			$mysql_r = $this -> newData($array);
		} else {
			$query = "delete from `{$this->mysql_prefix}{$this->table}` where `id`=$id";
			$mysql_r = mysql_query($query);
		}
		return $mysql_r;
	}

	public function delDatas($ids, $type = false) {
		if ($type) {
			foreach ($ids as $id) {
				$array['id'] = $id;
				$array['del'] = 0;
				$this -> newData($array);
			}
		} else {
			foreach ($ids as $id) {
				$query = "delete from `{$this->mysql_prefix}{$this->table}` where `id`=$id";
				$mysql_r = mysql_query($query);
			}
		}
		return $mysql_r;
	}

}